package cn.xuewenbao.demo.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import cn.xuewenbao.demo.entity.Demo;

/**
 * @Description: 测试 demo DAO类
 * @Author: wd
 * @Date: 2021-3-21
 * @Version: V1.0
 */
public interface DemoMapper extends BaseMapper<Demo> {
	/**
	 * 通过用户名查询列表数据
	 * @param name 用户名
	 * @return 列表数据
	 */
	public List<Demo> getDemoByName(@Param("name") String name);
	
	/**
	 * 查询列表数据 直接传数据权限的sql进行数据过滤
	 * @param page 分页信息
	 * @param permissionSql 数据权限sql
	 * @return 列表数据
	 */
	public IPage<Demo> queryListWithPermission(Page<Demo> page,@Param("permissionSql")String permissionSql);

	/**
	 * 根据前缀获取所有有效权限
	 * @param permsPrefix 前缀
	 * @return 列表数据
	 */
	public List<String> queryAllAuth(@Param("permsPrefix")String permsPrefix);

	/**
	 * 查询用户已授权字段
	 * @param userId 用户id
	 * @param permsPrefix 已授权前缀
	 * @return 已授权字段
	 */
	public List<String> queryUserAuth(@Param("userId")String userId,@Param("permsPrefix")String permsPrefix);

}
